home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / moreuselssprgs.lha / MonsterChase.AMOS / MonsterChase.amosSourceCode < prev    next >
AMOS Source Code  |  1997-04-18  |  2KB  |  54 lines

  1. Screen Open 0,320,200,16,Lowres
  2. Curs Off : Paper 0 : Flash Off : Cls 0
  3. Get Sprite Palette 
  4. Double Buffer 
  5. Autoback 0 : Hide 
  6. LIVE=5
  7. EN=4 : AN=4 : EXO=0
  8. FX=0 : FY=-1
  9. X_GOOD=150 : Y_GOOD=100 : X_SHOT=-20 : Y_SHOT=-20
  10. X_BAD=0 : Y_BAD=0 : L=20 : GX=0 : GY=0
  11. Do 
  12. Home : Print "Lives:";LIVE;"   Score:";SCORE : Screen Swap 
  13. Home : Print "Lives:";LIVE;"   Score:";SCORE : Screen Swap 
  14. Set Bob 1,0,%1101,%11001010
  15. Set Bob 2,0,%1111,%11001010
  16. Set Bob 3,0,%1111,%11001010
  17. Repeat 
  18.    SX=Jleft(1)-Jright(1) : SY=Jup(1)-Jdown(1)
  19.    Add X_GOOD,4*SX,-16 To 320
  20.    Add Y_GOOD,4*SY,-16 To 200
  21.    EX=Sgn(X_GOOD-X_BAD) : EY=Sgn(Y_GOOD-Y_BAD)
  22.    If L=0 and EXO=0 Then GX=Max(Min(GX+Sgn(EX),4),-4)
  23.    If L=0 and EXO=0 Then GY=Max(Min(GY+Sgn(EY),4),-4)
  24.    L=Max(L-1,0) : If EXO=1 Then Add GX,-Sgn(GX) : Add GY,-Sgn(GY)
  25.    Add X_BAD,GX : Add Y_BAD,GY
  26.    X_SHOT=Min(Max(X_SHOT+DX*5,-20),324)
  27.    Y_SHOT=Min(Max(Y_SHOT+DY*5,-20),204)
  28.    A=(X_SHOT=-20) or(X_SHOT=324) or(Y_SHOT=-20) or(Y_SHOT=204)
  29.    If SX Then FX=SX : FY=0
  30.    If SY Then FY=SY : FX=0
  31.    If SX<>0 and SY<>0 Then FX=SX : FY=SY
  32.    If Fire(1) and A Then X_SHOT=X_GOOD : Y_SHOT=Y_GOOD : DX=FX : DY=FY
  33.    Wait Vbl : Bob 1,X_GOOD,Y_GOOD,1 : Bob 2,X_BAD,Y_BAD,AN/2 : Bob 3,X_SHOT,Y_SHOT,4
  34.    If EXO=1 Then Inc AN
  35.    If EXO=0 and Bob Col(2,3 To 3)
  36.      GX=GX+DX*10 : GY=GY+DY*10 : L=10 : Dec EN
  37.      Add SCORE,1000 : X_SHOT=-20 : Y_SHOT=-20 : AN=6
  38.    End If 
  39.    If EN<1 Then EXO=1 : AN=10 : L=0 : EN=4
  40.    If AN>39 Then GX=0 : GY=0 : AN=4 : EXO=0 : L=20 : X_BAD=0 : Y_BAD=0 : Add SCORE,1500
  41.    Locate 17,0 : Print SCORE;
  42.    Inc SCORE : If L<5 and EXO=0 Then AN=4
  43. Until Bob Col(1,2 To 2) and EXO=0
  44. EXO=1 : AN=10
  45. Dec LIVE : If LIVE=0 Then Gosub GAMEOVER : SCORE=0 : LIVE=5
  46. Loop 
  47. GAMEOVER:
  48.   Bob Clear : Cls 0 : Screen Swap : Bob Clear : Cls 0 : Home 
  49.   Print "YOU ARE DEAD!!!! YOUR SCORE IS";SCORE
  50.   Print "PRESS Y TO PLAY AGAIN!"
  51.   Repeat : I$=Inkey$ : Until(I$="y") or(I$="n")
  52.   Screen Swap : Cls 0 : Screen Swap : Cls 0
  53.   If I$="n" Then Pop : End 
  54. Return